<?php
namespace App\http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Models\Qrcode;
use App\Models\Wechat;
use EasyWeChat\Foundation\Application;

class BaseController extends Controller
{
    protected $app;
    protected $server;
    protected $userService;
    protected $easyOptions;
    protected $shop = null;
    protected $qrcode = null;

    public function __construct($qrcode_id=null)
    {
        //wx006c860733b959ff
        //146dd622649f13c01f3b2fc5dbcac28a
        $wechat_id = request('wechat_id');
        $qrcode_id = $qrcode_id?$qrcode_id:request('qrcode_id',0);
        $qrcode = Qrcode::find($qrcode_id);
        $configs = [
            /**
             * Debug 模式，bool 值：true/false
             *
             * 当值为 false 时，所有的日志都不会记录
             */
            'debug'  => true,
            /**
             * 账号基本信息，请从微信公众平台/开放平台获取
             */
            'app_id'  => 'wxf75256ab7b42cc66',         // AppID
            'secret'  => '270561d3e2d02b953d64618e47f919b1',     // AppSecret
            'token'   => 'asasas',          // Token
            'aes_key' => '25WqrFXTyuARa6LvEVHcpClbLRNLUYhCwoh7T59B7Fq',                    // EncodingAESKey，安全模式下请一定要填写！！！
            /**
             * 日志配置
             *
             * level: 日志级别, 可选为：
             *         debug/info/notice/warning/error/critical/alert/emergency
             * permission：日志文件权限(可选)，默认为null（若为null值,monolog会取0644）
             * file：日志文件位置(绝对路径!!!)，要求可写权限
             */
            'log' => [
                'level'      => 'debug',
                'permission' => 0777,
                'file'       => '/tmp/easywechat.log',
            ],
            /**
             * OAuth 配置
             *
             * scopes：公众平台（snsapi_userinfo / snsapi_base），开放平台：snsapi_login
             * callback：OAuth授权完成后的回调页地址
             */
            'oauth' => [
                'scopes'   => ['snsapi_userinfo'],
                'callback' => '/examples/oauth_callback.php',
            ],
            /**
             * 微信支付
             */
            'payment' => [
                'merchant_id'        => 'your-mch-id',
                'key'                => 'key-for-signature',
                'cert_path'          => 'path/to/your/cert.pem', // XXX: 绝对路径！！！！
                'key_path'           => 'path/to/your/key',      // XXX: 绝对路径！！！！
                // 'device_info'     => '013467007045764',
                // 'sub_app_id'      => '',
                // 'sub_merchant_id' => '',
                // ...
            ],
            /**
             * Guzzle 全局设置
             *
             * 更多请参考： http://docs.guzzlephp.org/en/latest/request-options.html
             */
            'guzzle' => [
                'timeout' => 3.0, // 超时时间（秒）
                //'verify' => false, // 关掉 SSL 认证（强烈不建议！！！）
            ],
        ];
        if($qrcode){
            $this->qrcode = $qrcode;
            $this->shop = $qrcode->shop;
            if(isset($qrcode->shop->wechat)){
                $wechat = $qrcode->shop->wechat;
            }
        }
        if($wechat_id){
            $wechat = Wechat::find($wechat_id);
        }
        if(isset($wechat)){
            $configs['app_id'] = $wechat->app_id;
            $configs['secret'] = $wechat->secret;
            $configs['token'] = $wechat->token;
            $configs['aes_key'] = $wechat->aes_key;
            $this->shop = $wechat->shop;
        }
        $this->easyOptions = $configs;
        $this->app = new Application($this->easyOptions);

        $this->server = $this->app->server;

        $this->userService = $this->app->user;
    }
}